embedded developers development outsourcing outsource consulting bpo medical device firmware linux embedded software medical firmware embedded systems open source medical device software software projects